The inventions disclosed herein relate generally to collaborative systems and more particularly to shared annotation systems.
Users often wish to collaborate on shared documents in a network. For example, in a business environment, users at different companies may collaborate on a business agreement such as creating a contract or a license agreement.
One issue associated with network collaboration is synchronicity. For example, users often collaborate by exchanging versions of documents via e-mail or other similar means. A first user edits or otherwise comments a document and then sends the revised version to a second user for further input. The second user makes or otherwise provides their input and then e-mails the new document back to the first user. While the first user is editing the document, however, the second user cannot provide input since they do not possess the current version of the document (currently being edited by the first user) and therefore do not know what changes the first user might be making. Similarly, the first user cannot provide further input while the document is being edited by the second user. It is thus desirable for users to be able to provide synchronous comments and edits without having to wait for other users.
Another issue associated with network collaboration is application heterogeneity. In existing systems, users must have the same specialized collaboration software in order to collaborate and share information. For example, one current collaborative system by iMarkup Solutions of Vista, Calif. requires both users to download and install a specialized plug-in in order to extend collaborative functionality to the user systems. Many users find this technically challenging to configure or simply inconvenient. It is thus desirable for users to be able to collaborate using tools that are application agnostic and do not require additional specialized software.
U.S. Pat. No. 6,43 8,564 discusses a system which allows users to associate discussions within documents. Discussions include comments, annotations, and notes and are associated with documents by associating the discussion with a document identifier. Discussions are stored separately from their related documents. When a particular document is requested by a user, any related discussions associated with the identifier for the document are also retrieved. The system discussed in the '564 application has a number of shortcomings. For example, in the '564 patent, only HTML text associated with a discussion is stored. If the discussion is linked to another item, for example a media item, such as a graphic, a video clip, an audio clip, etc., the media file is not stored in the system database containing the HTML text and other data associated with the discussion. Also, only a link to the media is stored. Thus, if a user desires to use a media item in a discussion, they must first upload the item to a separate web server or else the link in the '564 patent system database to the item will be invalid. This presents users with a significant inconvenience. Further, the system only parses HTML tag data such as paragraphs, lists, images, and tables, to determine a location for a discussion within a document. Discussions are thus limited to hanging off of paragraphs, lists, images, tables, etc. and a user is not, for example, able to link a discussion to an arbitrary word or phrase within the document. This lack of flexibility limits the user's ability to freely comment within a document and also presents a significant limitation with respect to the level of granularity at which a given document may be discussed. Using the '564 patent system, for example, a user could not comment on individual words in a poem which might be highly desirable given the importance of individual word choice in poetry.
There is thus a need for systems and methods which are application agnostic and allow users to synchronously share annotations regarding a particular document. There is also a need for systems and methods which permit users to place annotations at any arbitrary location within a document.